char str[ ]= "Hello";

来源:百度知道 编辑:UC知道 时间:2024/06/23 16:41:26
char str[ ]= ”Hello”;
char *p=str;
int n=10;
sizeof(str)=( )
sizeofchar str[ ]= ”Hello”;
char *p=str;
int n=10;
sizeof(str)=( )
sizeof(p)=( )
sizeof(n)=( )
void func(char str[100])
{ }
sizeof(str)=( )
(p)=( )
sizeof(n)=( )
void func(char str[100])
{ }
sizeof(str)=( )
结果是什么啊/

应根据编译器对各类型决定了,以下为32位机标准的结果
char str[ ]= ”Hello”;
char *p=str;
int n=10;
sizeof(str)=( 6 )
sizeofchar str[ ]= ”Hello”;/*有误吧,应该重复了吧*/
char *p=str;
int n=10;
sizeof(str)=( 6 )/*求总共的字节数,不是长度数,比较strlen函数了*/
sizeof(p)=( 4 )/*32机器上*/
sizeof(n)=( 4 )
void func(char str[100])
{ }
sizeof(str)=( 4 )/*数组作为参数传递给函数时,传的是指针而不是数组,传递的是数组的首地址,呵呵~~,牢记了*/
(p)=( str )
sizeof(n)=( 4 )
void func(char str[100])
{ }
sizeof(str)=( 4 )
感觉怪怪地,怎么都一样呀,是不是丢了中间变化的过程呀...

sizeof(str)=( 6 )计算的是字符数组的长度,包含最后一个‘\0’
sizeof(p)=( 4 )计算的是指针的长度,指针长度为4
sizeof(n)=( 4 )整形的长度是4
sizeof(str)=( 4 )形参数组同样是作为指针来处理的,所以长度为4